/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package edu.upc.dew.dewproject.repository.jdbc;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.simple.SimpleJdbcDaoSupport;
import org.springframework.stereotype.Repository;

import edu.upc.dew.dewproject.domain.Titulo;
import edu.upc.dew.dewproject.repository.TituloRepository;

/**
 *
 * @author BRIAN
 */
@Repository
public class TituloRepositoryJDBC extends SimpleJdbcDaoSupport implements TituloRepository{
 final String  queryTitulo="select ID_TITULO, NOMBRE, DESCRIPCION,PRECIO,FECHA_LANZAMIENTO,ESTADO,PUNTUACION,FOTO, NUMERO, VIDEOURL, IMAGEN, MINI_IMAGEN from TB_TITULO";
 final String  updateTitulo="UPDATE TB_TITULO SET estado = ? where ID_TITULO = ?";

	@Autowired
	   public TituloRepositoryJDBC(JdbcTemplate jdbcTemplate  ){
		   
		   setJdbcTemplate(jdbcTemplate);
		   
	   }
    public Titulo buscarTitulo(int id) {
    	return null;
    	
    	
    }
    private static final class TituloMapper implements RowMapper {

        public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
            Titulo titulo = new Titulo();
            titulo.setNombre(rs.getString("ID_TITULO"));
            titulo.setNombre(rs.getString("NOMBRE"));
            titulo.setDescripcion(rs.getString("DESCRIPCION"));
            titulo.setPrecio(rs.getDouble("PRECIO"));
            titulo.setFechaLanzamiento(rs.getDate("FECHA_LANZAMIENTO"));
            titulo.setEstado(rs.getString("ESTADO").charAt(0));
            titulo.setPuntuacion(rs.getDouble("PUNTUACION"));
            titulo.setFoto(rs.getString("FOTO"));
            titulo.setCantidad(rs.getInt("NUMERO"));
            titulo.setVideoUrl(rs.getString("VIDEOURL"));
            
            return titulo;
        }
    }

    
    public void registrarTitulo(Titulo Titulo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    
    public void actualizarTitulo(Titulo Titulo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    
    public void eliminarTitulo(int id) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    
    public List<Titulo> listarDetalleAlquiler() {
        throw new UnsupportedOperationException("Not supported yet.");
    }
	public Titulo buscarTitulos(int cantidad) {
		// TODO Auto-generated method stub
		return null;
	}
	public List<Titulo> listarTitulo() {
		
		return getSimpleJdbcTemplate().query(queryTitulo,new TituloMapper());
	}
	public List<Titulo> listarTitulo(String estado) {
		// TODO Auto-generated method stub
		return getSimpleJdbcTemplate().query(queryTitulo+" where ESTADO='"+estado+"' ",new TituloMapper());
	}
	public void actualizarEstadoTitulo(int id, String estado) {
		
		try{
			int i=getSimpleJdbcTemplate().update(updateTitulo, estado,id);
			logger.info("Cantidad "+ i);
		}catch (Exception e) {
			//System.out.println("Cantidad "+ e.getMessage());
			logger.error("Cantidad "+ e.getMessage());
		}
		
	}



	

}
